package gradle.mybatis.common.response;

import com.github.pagehelper.Page;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 分页实体
 */
@Data
@NoArgsConstructor
@Schema(description = "分页实体")
public class Pager {

    /**
     * 总记录数
     */
    @Schema(description = "总记录数" )
    private long total;
    /**
     * 当前页数
     */
    @Schema(description = "当前页数" )
    private int pageNum;
    /**
     * 总页数
     */
    @Schema(description = "总页数" )
    private int pages;

    /**
     * 每页显示的记录条数
     */
    @Schema(description = "每页显示的记录条数" )
    private int pageSize;

    /**
     * 有参构造器
     * @param total 总记录数
     * @param pageNum 当前页数
     * @param pages 总页数
     * @param pageSize 每页显示记录数
     */
    public Pager(long total, int pageNum, int pages, int pageSize) {
        this.total = total;
        this.pageNum = pageNum;
        this.pages = pages;
        this.pageSize = pageSize;
    }

    /**
     * pageHelper 分页对象转换
     * @param page pageHelper分页对象
     * @return 响应分页对象
     */
    public static Pager convertPagerHelperPage(Page page){
        return new Pager(page.getTotal(),page.getPageNum(),page.getPages(),page.getPageSize());
    }

}
